package com.avecsys.quotemanager.dao.supplier;

import java.util.List;

import com.avecsys.quotemanager.dao.common.BaseDAO;
import com.avecsys.quotemanager.exception.DAOException;
import com.avecsys.quotemanager.pojos.QuoteTemplateMasterPojo;
import com.avecsys.quotemanager.pojos.SupplierMasterPojo;
import com.avecsys.quotemanager.utils.TransactionStatus;

/**
 * @author Sam Sundar K
 */
public interface QuoteTemplateMasterDAO extends BaseDAO
{

	/**
	 * Method to return all Supplier Quote Templates with active status matching the templateName
	 * 
	 * @param supplierMasterPojo
	 * @param templateName
	 * @return List<QuoteTemplateMasterPojo>
	 */
	List<QuoteTemplateMasterPojo> findAllActiveQuoteTemplatesByName(
			SupplierMasterPojo supplierMasterPojo, String templateName) throws DAOException;

	/**
	 * Method to return all Supplier Quote Templates with active status
	 * 
	 * @param supplierMasterPojo
	 * @return List<QuoteTemplateMasterPojo>
	 */
	List<QuoteTemplateMasterPojo> findAllSupplierQuoteTemplates(SupplierMasterPojo supplierMasterPojo)
			throws DAOException;

	/**
	 * Method to save a new Supplier Quote Template Information
	 * 
	 * @param quoteTemplateMasterPojo
	 * @return TransactionStatus
	 * @throws DAOException
	 */
	TransactionStatus saveQuoteTemplateMaster(QuoteTemplateMasterPojo quoteTemplateMasterPojo)
			throws DAOException;

	/**
	 * Method to update the Supplier Quote Template Information
	 * 
	 * @param quoteTemplateMasterPojo
	 * @return TransactionStatus
	 * @throws DAOException
	 */
	TransactionStatus updateQuoteTemplateMaster(QuoteTemplateMasterPojo quoteTemplateMasterPojo)
			throws DAOException;

}
